home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / packet / p_aa4re / mbb35src / 8250con.asm next >
Encoding:
Assembly Source File  |  1990-10-14  |  6.7 KB  |  124 lines

  1. ;==========================================================================;
  2. ; 8250 hardware constants                                                  ;
  3. ;==========================================================================;
  4.  
  5. ;--------------------------------------------------------------------------;
  6. ; Address offsets                                                          ;
  7. ;--------------------------------------------------------------------------;
  8.  
  9. rbr_8250         EQU 00H   ;       xF8   Receive Buffer Register
  10. thr_8250         EQU 00H   ;       xF8   Transmitter Holding Register
  11. ier_8250         EQU 01H   ;       xF9   Interrupt Enable Register
  12. iir_8250         EQU 02H   ;       xFA   Interrupt Identification Register
  13. fcr_8250         EQU 02H   ;       xFA   FIFO Control (write only)
  14. lcr_8250         EQU 03H   ;       xFB   Line Control Register
  15. mcr_8250         EQU 04H   ;       xFC   Modem Control Register
  16. lsr_8250         EQU 05H   ;       xFD   Line Status Register
  17. msr_8250         EQU 06H   ;       xFE   Modem Status Register
  18. dll_8250         EQU 00H   ;       xF8   Divisor Latch Least Significant
  19. dlm_8250         EQU 01H   ;       xF9   Divisor Latch Most  Significant
  20.  
  21. ;--------------------------------------------------------------------------;
  22. ; Interrupt enable register definition                                     ;
  23. ;--------------------------------------------------------------------------;
  24.  
  25. ;                EQU 11110000B ;   Not used
  26. ier_8250_ms      EQU 00001000B ;   Modem status interrupt enable
  27. ier_8250_rls     EQU 00000100B ;   Receive line status interrupt enable
  28. ier_8250_thre    EQU 00000010B ;   Transmit holding register interrupt enable
  29. ier_8250_rda     EQU 00000001B ;   Receive data available interrupt enable
  30.  
  31. ;--------------------------------------------------------------------------;
  32. ; Interrupt identification register definition                             ;
  33. ;--------------------------------------------------------------------------;
  34.  
  35. ;                EQU 00110000B ;   Not used -- Always zero
  36. ;                EQU ....xxx.B ;   These bites determine the interrupt type
  37. iir_8250_ip      EQU 00000001B ;   If this bit = 0 then interrupt pending
  38. iir_8250_ms      EQU 00000000B ;   Modem status interrupt
  39. iir_8250_thre    EQU 00000010B ;   Transmit holding register empty interrupt
  40. iir_8250_rda     EQU 00000100B ;   Receive data available interrupt
  41. iir_8250_rls     EQU 00000110B ;   Receive line status interrupt
  42. iir_8250_rto     EQU 00001100B ;   Receive timeout (FIFO mode only)
  43. iir_8250_fifo    EQU 11000000B ;   FIFO mode if on
  44.  
  45. ;--------------------------------------------------------------------------;
  46. ; Line control register definition                                         ;
  47. ;--------------------------------------------------------------------------;
  48.  
  49. ;                EQU ......xxB ;   Word size select
  50. lcr_8250_ws5     EQU 00000000B ;   Word select -- 5 bits
  51. lcr_8250_ws6     EQU 00000001B ;   Word select -- 6 bits
  52. lcr_8250_ws7     EQU 00000010B ;   Word select -- 7 bits
  53. lcr_8250_ws8     EQU 00000011B ;   Word select -- 8 bits
  54.  
  55. lcr_8250_s2      EQU 00000100B ;   2 stop bits wanted instead of 1
  56. lcr_8250_pe      EQU 00001000B ;   Parity enable -- 1 = parity bit wanted
  57. lcr_8250_eps     EQU 00010000B ;   Even parity select -- 1 = even parity
  58. lcr_8250_sp      EQU 00100000B ;   Parity stick -- 1 = stick parity on
  59. lcr_8250_sb      EQU 01000000B ;   Set Break -- Latches output at 0 state
  60. lcr_8250_dlab    EQU 10000000B ;   Divisior Latch Access Bit -- 1 = divisor
  61.  
  62. ;--------------------------------------------------------------------------;
  63. ; Modem control register definition                                        ;
  64. ;--------------------------------------------------------------------------;
  65.  
  66. ;                EQU 000.....B ;   Not used
  67. mcr_8250_loop    EQU 00010000B ;   Loop back mode
  68. mcr_8250_out2    EQU 00001000B ;   OUT2 on -- This enables interrupts
  69. mcr_8250_out1    EQU 00000100B ;   OUT1 on
  70. mcr_8250_rts     EQU 00000010B ;   Request To Sent (RTS)
  71. mcr_8250_dtr     EQU 00000001B ;   Data Terminal Ready (DTR)
  72.  
  73. hon_8250         EQU 00001011B ; 8250 Initialization and handshaking constant
  74.                                ;    Gives DTR, RTS, and OUT2.  OUT2 controls
  75.                                ;    the IBM ASYNC card interrupt enable
  76.  
  77. hoff_8250        EQU 00001000B ; 8250 Handshaking off.  Gives only OUT2.
  78.                                ;    TNC1 uses RTS, TNC2 uses DTR.
  79.  
  80. ;--------------------------------------------------------------------------;
  81. ; Line status register definition                                          ;
  82. ;--------------------------------------------------------------------------;
  83.  
  84. ;                EQU x.......B ;   Not used
  85. lsr_8250_tsre    EQU 01000000B ;   Transmit shift register empty
  86. lsr_8250_thre    EQU 00100000B ;   Transmit holding register empty (THRE)
  87. lsr_8250_bi      EQU 00010000B ;   Break interrupt
  88. lsr_8250_fe      EQU 00001000B ;   Framing error
  89. lsr_8250_pe      EQU 00000100B ;   Parity error
  90. lsr_8250_or      EQU 00000010B ;   Overrun error
  91. lsr_8250_dr      EQU 00000001B ;   Receive data ready (RDA)
  92.  
  93. ;--------------------------------------------------------------------------;
  94. ; Modem status register definition                                         ;
  95. ;--------------------------------------------------------------------------;
  96.  
  97. msr_8250_rlsd    EQU 10000000B ;   Receive line signal detect (DCD)
  98. msr_8250_ri      EQU 01000000B ;   Ring indicator (RI)
  99. msr_8250_dsr     EQU 00100000B ;   Dataset ready (DSR)
  100. msr_8250_cts     EQU 00010000B ;   Clear to send (CTS)
  101.  
  102. ; These are deltas.. They turn on if the signal has changed since last
  103. ; time you read this register
  104.  
  105. msr_8250_drlsd   EQU 00001000B ;   Delta Receive line signal detect (DCD)
  106. msr_8250_dri     EQU 00000100B ;   Delta Ring indicator (RI)
  107. msr_8250_ddsr    EQU 00000010B ;   Delta Dataset ready (DSR)
  108. msr_8250_dcts    EQU 00000001B ;   Delta Clear to send (CTS)
  109.  
  110. ;--------------------------------------------------------------------------;
  111. ; FIFO control register definition                                         ;
  112. ;--------------------------------------------------------------------------;
  113.  
  114. fcr_8250_trig    EQU 11000000B ;   Receive trigger
  115. fcr_8250_trig1   EQU 00000000B ;        Trigger on 1 byte
  116. fcr_8250_trig4   EQU 01000000B ;        Trigger on 4 bytes
  117. fcr_8250_trig8   EQU 10000000B ;        Trigger on 8 bytes
  118. fcr_8250_trig14  EQU 11000000B ;        Trigger on 14 bytes
  119. fcr_8250_tmod1   EQU 00001000B ;   Switch pins to mode1
  120. fcr_8250_tclr    EQU 00000100B ;   Transmit FIFO clear
  121. fcr_8250_rclr    EQU 00000010B ;   Receive FIFO clear
  122. fcr_8250_enabl   EQU 00000001B ;   FIFO enable
  123.  
  124.